package topic;

import java.io.Serializable;
import java.rmi.Remote;
import java.rmi.RemoteException;
import java.util.Hashtable;

import javax.swing.tree.DefaultMutableTreeNode;

import accessers.DataReader;
import interfaces.Subscriber;
import data.DataObject;
import embeded.EmbededObject;

public interface Topic extends Serializable, Remote{
	void setEmbededObject(EmbededObject domaine) throws RemoteException;
	DataObject getDataObject() throws RemoteException;
	void setDataObject(DataObject data) throws RemoteException;
	String getName() throws RemoteException;
	String getFullName() throws RemoteException;
	void setRootName(String rootName) throws RemoteException;
	void setSuscriber(Subscriber suscriber) throws RemoteException;
	Subscriber getSuscriber() throws RemoteException;
	boolean addTopic(String topicName, Topic topic, boolean isCopie) throws RemoteException;
	Topic getAllTopic() throws RemoteException;
	boolean deleteTopic(String topicName) throws RemoteException;
	DataReader getDataReader() throws RemoteException;
	int getChildreenCount() throws RemoteException;
	Hashtable<String, Topic> getChildreen() throws RemoteException;
	Topic contain(String topicName) throws RemoteException;
	void initAllTopic(EmbededObject embeded) throws RemoteException;
	DefaultMutableTreeNode createNode() throws RemoteException;
}
